# Variabele voor de geselecteerde compiler (zie fortrancompilers)
FC=gfortran
# Variabele voor algemene compilatievlaggen (afhankelijk van de compiler)
FFLAGS_nagfor= -C=all -gline -u -colour -I ../FMLIB
FFLAGS_gfortran=-g -Wall -Wimplicit-interface -fbounds-check -I ../FMLIB
FFLAGS_g95=-g -Wall -fbounds-check -ftrace=full -I ../FMLIB
FFLAGS_ifort=-g -debug full -check -warn -free -Tf -I ../FMLIB
# Selecteer de juiste vlaggen voor de huidige compiler
FFLAGS=$(FFLAGS_$(FC))

# Lees als: als er geen argumenten meegegeven worden aan make, wordt standaard het eerste
#           "target" gebruikt. Door deze afhankelijkheid zal "converge" gamaakt worden.
#           Dit kan je aanpassen zodat "make" steeds het juiste "target" zal kiezen.
default: test
	./test

# Lees als: het programma "converge" is afhankelijk van het object bestand "converge.o",
#           eenmaal dat bestand up-to-date is kan het programma alsvolgt gecompileerd worden.
test: test.o
	$(FC) -o test test.o ../FMLIB/FM*.o

# Lees als: het object bestand "converge.o" is afhankelijk van het bronbestand "converge.f95"
#           en kan, indien nodig, gemaakt worden met de hulp van het onderstaande commando.
test.o: test.f95
	$(FC) -c $(FFLAGS) test.f95

# Lees als: dit mini-programma kan men, indien nodig, direct compileren uit het bronbestand
#           "edelman.f95", en wel alsvolgt
edelman: edelman.f95
	$(FC) -o edelman $(FFLAGS) edelman.f95

# Lees als: verwijder alle tussentijdse bestanden
clean:
	$(RM) *.o *.mod
# Lees als: verwijder alle tussentijdse bestanden en de programma's
veryclean: clean
	$(RM) converge edelman
